The present invention relates generally to input/output (I/O) performance of storage subsystems in which a plurality of logical/virtual objects share less physical data and, more particularly, in the single instance, deduplication, or Copy-on-Write snapshot environment.
One of the functions of storage subsystem is the Writeable Copy-on-Write Snapshot function. The snapshot image consists of current data and its delta data from a snapshot point. When write I/O occurs to some data, the storage backs up the current data to a pool and overwrites the new data to the current data. When read I/O occurs to the snapshot (backed up) data, the storage searches the aforesaid backed up data in the pool and transfers the data, if the data is stored to the pool. When read I/O occurs to the snapshot (backed up) data, the storage searches the aforesaid backed up data in the primary volume and transfers the data if the data is stored to the primary volume. When write I/O occurs to the snapshot (backed up) data, the storage copies the primary volume data and merges the written data, if the data is not backed up yet. When write I/O occurs to the snapshot (backed up) data, the storage searches the aforesaid backed up data in the pool and overwrites the data if the data is not shared by other backup images. When write I/O occurs to the snapshot (backed up) data, the storage searches the aforesaid backed up data in the pool and stores the data to another area if the data is shared by other backup images. The above is the general control method of the Writeable Copy-on-Write Snapshot function.
The Writeable Copy-on-Write Snapshot function can reduce the physical capacity of the storage. It is efficient in many (physical or virtual) servers environment, because those servers will use the same data. However, this control method requires relatively long latency to ensure data consistency from the lock process and from the I/O synchronous copy against an I/O to backup image. For example, this control method requires reading I/O data of virtual volume during write I/O to logical volume.